Code symbol reading system having adaptive autofocus

ABSTRACT

A system for reading code symbols includes an imaging subsystem that includes a focusing module and an image processor. The image processor selects an initial, predicted focal distance for the imaging subsystem&#39;s focusing module with respect to a code symbol. The focal distance for each successfully decoded code symbol is stored in memory, and a weighted average of a pre-selected number of memorized focal distances is used to calculate the next initial, predicted focal distance.

CROSS-REFERENCE TO RELATED APPLICATION

The present application claims the benefit of U.S. patent applicationSer. No. 13/927,398 for a Code Symbol Reading System Having AdaptiveAutofocus filed Jun. 26, 2013 (and published Jan. 1, 2015 as U.S. PatentApplication Publication No. 2015/0001304), now U.S. Pat. No. 9,104,929.Each of the foregoing patent application, patent publication, and patentis hereby incorporated by reference in its entirety.

FIELD OF THE INVENTION

The present invention relates to the field of code symbol readers, morespecifically, to a code symbol reading system having adaptive autofocus.

BACKGROUND

Mobile computer devices such as smartphones have become an increasinglypopular way to scan code symbols (e.g., barcodes) because of theirhighly functional camera technology as well as their ubiquity. Generallyspeaking, the greatest challenge when scanning a barcode with asmartphone is first getting the barcode in focus. Presently, mostsmartphones utilize an autofocus routine that attempts to get an imageinto focus. This procedure is quite time consuming, principally becausethe autofocus routine initiates the process without any real sense ofthe proper focal distance. As a result, the smartphone often spends agreat deal of time readjusting the focal distance as it searches for theproper focal setting that will bring the barcode into focus at leastenough to read the barcode. Autofocus routines are often hampered intheir efforts by excessive motion and poor lighting conditions. Thisoften leads to a significant time delay when scanning a barcode andaccounts for the vast majority of the overall scan time.

Therefore, a need exists for a system for reading code symbols that iscapable of generating faster readings of code symbols by first making aneducated guess at where the focus should be fixed before a barcode scanis attempted.

SUMMARY

Accordingly, in one aspect, the present invention embraces a system forreading code symbols having adaptive autofocus. The system for readingcode symbols includes an imaging subsystem for capturing images withinthe imaging subsystem's field of view. The imaging subsystem includes afocusing module. The system for reading code symbols also includes animage processor. The image processor is configured for selecting aninitial, predicted focal distance for the imaging subsystem's focusingmodule. The image processor is also configured for processing an imageof a code symbol captured by the imaging subsystem in order to decodethe code symbol. The image processor is also configured for storing inmemory the focal distance associated with the decoded code symbol. Theimage processor is configured to select the initial, predicted focaldistance as a function of memorized focal distance(s) associated withpreviously decoded code symbol(s).

In an exemplary embodiment, the image processor is configured to selectthe initial, predicted focal distance as a function of a plurality ofmemorized focal distances associated with previously decoded codesymbols.

In another exemplary embodiment, the image processor is configured toperform an autofocus routine if processing the captured image of thecode symbol at the initial, predicted focal distance fails to decode thecode symbol.

In yet another exemplary embodiment, the image processor is configuredto perform an autofocus routine if the number of memorized focaldistances associated with previously decoded code symbols is less than apredetermined minimum.

In yet another exemplary embodiment, the imaging subsystem detects thepresence of a code symbol within the imaging subsystem's field of view.

In yet another exemplary embodiment, the system for reading code symbolsaccording to the present invention also includes an object detectionsubsystem for detecting the presence of an object (e.g., an objectbearing a code symbol) within the imaging subsystem's field of view.

In yet another exemplary embodiment, the system for reading code symbolsaccording to the present invention also includes a hand-supportablehousing. The imaging subsystem and image processor are disposed withinthe hand-supportable housing.

In yet another exemplary embodiment, the system for reading code symbolsaccording to the present invention also includes an input/outputsubsystem. The input/output subsystem outputs signals from the systemfor reading code symbols.

In another aspect, the present invention embraces a system for readingcode symbols that includes an imaging subsystem and an image processor.The imaging subsystem captures images within the imaging subsystem'sfield of view. The imaging subsystem includes a focusing module. Theimage processor is configured for selecting an initial, predicted focaldistance for the imaging subsystem's focusing module with respect to acode symbol, and to process one or more images of a code symbol capturedby the imaging subsystem at the initial, predicted focal distance. Theimage processor is configured to perform an autofocus routine ifprocessing a predetermined number of captured images of a code symbolfails to decode the code symbol. The image processor is also configuredto store in memory the focal distance associated with the decoded codesymbol if processing a captured image of the code symbol decodes thecode symbol. The image processor is configured to select the initial,predicted focal distance as a function of a plurality of memorized focaldistances associated with previously decoded code symbols.

In an exemplary embodiment, the image processor is configured to storein memory the initial, predicted focal distance associated with thedecoded code symbol if processing a captured image of a code symbol atthe initial, predicted focal distance decodes the code symbol.

In another exemplary embodiment, the image processor is configured toperform an autofocus routine if the number of memorized focal distancesassociated with previously decoded code symbols is less than apredetermined minimum.

In yet another exemplary embodiment, the image processor is configuredto process one or more additional captured images of the code symbolafter the image processor performs an autofocus routine.

In yet another exemplary embodiment, the imaging subsystem detects thepresence of a code symbol within the imaging subsystem's field of view.

In yet another exemplary embodiment, the system for reading code symbolsaccording to the present invention includes an object detectionsubsystem for detecting the presence of a code symbol within the imagingsubsystem's field of view.

In yet another exemplary embodiment, the system for reading code symbolsaccording to the present invention includes a hand-supportable housing.The imaging subsystem and image processor are disposed within thehand-supportable housing.

In yet another exemplary embodiment, the system for reading code symbolsaccording to the present invention includes an input/output subsystemfor outputting system signals.

The foregoing illustrative summary, as well as other exemplaryobjectives and/or advantages of the invention, and the manner in whichthe same are accomplished, are further explained within the followingdetailed description and its accompanying drawings.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an exemplary system for reading codesymbols according to the present invention.

FIG. 2 is a block diagram of a first alternative embodiment of thesystem for reading code symbols according to the present invention.

FIG. 3 is a block diagram of a second alternative embodiment of thesystem for reading code symbols according to the present invention.

DETAILED DESCRIPTION

The present invention embraces a system for reading code symbols. Theterm “code symbol” is intended broadly to refer to any indicia or deviceused to store information about an object, including barcodes, linearbarcodes, 1D barcodes, matrix barcodes, 2D barcodes, QR codes, RFIDtags, and optical character recognition (OCR) symbols. When a codesymbol is read, the information encoded in the code symbol is decoded.Referring now to FIG. 1, the system 100 for reading code symbolsaccording to the present invention includes an imaging subsystem 110.The imaging subsystem 110 captures images within the imaging subsystem's110 field of view (i.e., angle of view). Objects that can be viewed bythe imaging subsystem when it is in a given position and orientation inspace are within the imaging subsystem's 110 field of view. When a userwishes to capture an image of a code symbol, the user either positionsthe code symbol within the imaging subsystem's 110 field of view, orre-orients the imaging subsystem 110 to change its field of view toinclude the code symbol. For example, if using a camera-equippedsmartphone as a code symbol reader, the user could reposition thesmartphone until the code symbol comes into the field of view of thesmartphone's camera.

The imaging subsystem 110 of the system 100 according to the presentinvention includes a focusing module 115. The focusing module 115functions to bring into focus the code symbol of interest such that thecode symbol may be read. Typically, the focusing module includes (i) alens assembly having one or more lenses and (ii) a small autofocus motorwhich manipulates the lens assembly to adjust its field of focus. Theautofocus motor manipulates the lens assembly by changing the distancebetween the lens assembly and the image plane, or by otherwise adjustingthe lens configuration, to bring the code symbol into focus.Alternatively, the focusing module could include a liquid lens module.The liquid lens module has a liquid lens having a chamber containing atleast one type of liquid. A liquid lens driver applies an electriccurrent to the liquid, and can vary the focal characteristics of theliquid lens by varying the level of electric current. These types ofliquid lens modules are particularly useful in smaller, mobile devicesbecause they do not require moving parts.

The system 100 according to the present invention also includes an imageprocessor 120. Rather than immediately initiating a potentiallytime-consuming autofocus routine prior to capturing an image of a codesymbol, the image processor 120 first selects an initial, predictedfocal distance for the imaging subsystem's 110 focusing module 120. Inother words, the image processor 120 estimates the focal distance atwhich the system 100 should attempt to capture the image of the codesymbol. The method used to estimate the focal distance is describedbelow in detail.

After an image of a code symbol is captured by the system 100, the imageprocessor 120 processes the image of the code symbol to decode (e.g.,read) the code symbol. If the captured image of the code symbol is ofsufficient quality (e.g., focal quality) to allow the image processor120 to successfully decode the code symbol, then the image processor 120stores in memory the focal distance associated with the decoded codesymbol. In other words, when the system 100 captures an image of a codesymbol, the image processor 120 (i) determines the focal distance of thefocusing module at the time the image was captured, (ii) determineswhether the code symbol can be decoded from the captured image, and(iii) stores in memory the focal distance of each successfully decodedcode symbol at the time the image was captured. If the image processor120 determines that the image quality is not sufficient to permit thedecoding of the code symbol, the focal length associated with theunsuccessful image capture is not stored in memory. The process isrepeated each time the system 100 captures an image of a code symbol,with the focal distance associated with each image capture resulting ina successful decoding being stored in memory. In this way, the system100 creates a continuously updated record of each of the focal distancesemployed to decode the code symbol(s). It will be appreciated by aperson of ordinary skill in the art that the number of focal distancesstored in memory can vary depending on how large of a sample is desired.Prior to capturing an image of a code symbol, the image processor 120selects the initial, predicted focal distance needed to capture an imagethat can successfully decode the code symbol. The initial, predictedfocal distance is a function of the memorized focal distance(s)associated with the previously decoded code symbol(s).

In an exemplary embodiment of the system 100 for reading code symbolsaccording to the present invention, the image processor 120 selects theinitial, predicted focal distance as a function of a plurality ofmemorized focal distances associated with previously decoded codesymbols. Typically, the image processor 120 selects the initial,predicted focal distance that will be used for the current scanoperation (e.g., code symbol image capture) by calculating a weightedmoving average of the memorized focal distances. Typically, the imageprocessor 120 keeps a record of the temporal order of memorized focaldistances. In other words, the image processor 120 records which focaldistance is associated with the most recently captured image, whichfocal distance is associated with the next most recently captured image,and so on. Using this temporal information, the image processor 120typically gives greater weight to the focal distances associated withthe more recently captured images. This approach is particularlyadvantageous when reading code symbols from varying distances, becausethis weighted average approach assumes that the distance of the nextcode symbol to be scanned will be roughly the same as the distances ofthe latest successful scans. Because, in many instances, when a user isscanning multiple code symbols in succession, those code symbols will beat similar distances from the system 100, the approach of more heavilyweighting the more recent scans typically yields improved results. Forexample, a worker holding the system in hand while scanning variousboxes bearing a code symbol while the boxes are resting on a table ofsubstantially uniform height would likely achieve improved results usingthis method since most of the code symbols will be at roughly the samedistance from the system 100. Any weighting scheme could be applied tofind an optimal balance between highly valuing the most recent focallength data while still taking into account focal length data over alonger trend. By way of example, a linear weighting system could beemployed. By way of further example, the image processor 120 couldemploy an exponentially weighted moving average, which would placegreater value on the focal distance associated with the most recent scanwhile taking into consideration all of the memorized focal distances.

In an exemplary embodiment, the image processor 120 first seeks tosuccessfully decode an image by initiating a scan using the initial,predicted focal distance. If the image processor 120 fails to decode theimage using the initial, predicted focal distance (for example, becausethe image is out of focus), the image processor retries the scan attemptusing a traditional autofocus routine. In this way, the system 100 seeksto expedite the scanning process by first attempting to decode the codesymbol using the faster, educated estimate approach described herein; ifthat approach is not successful, the system 100 falls back on atraditional autofocus routine.

In another exemplary embodiment, the image processor 120 first checks tosee if a sufficiently large sample size of focal distances are stored inmemory. If less than a predetermined minimum number of memorized focaldistances associated with previously decoded code symbols reside inmemory, then the image processor 120 does not attempt to generate aninitial, predicted focal distance. Instead, the image processor 120 goesdirectly to the traditional autofocus routine to attempt to decode thecode symbol. In this way, if the available data set of focal distancesis below a predetermined minimum number deemed to be sufficient togenerate a reliable (e.g., useful) initial, predicted focal distance,the image processor 120 will not waste time or system resources on anestimation step that is unlikely to yield an image with a suitable focalquality.

In an exemplary embodiment, the imaging subsystem 110 detects thepresence of a code symbol within the imaging subsystem's 110 field ofview. The presence of a code symbol may be detected by an analysis ofthe image pixels by the imaging subsystem 110 to determine if they areconsistent with the presence of a code symbol. This analysis may becapable of detecting the presence of a code symbol even when the imagequality is insufficient to support reading the code symbol. If theimaging subsystem 110 detects a code symbol within the field of view ofthe imaging subsystem 110, it initiates an image capture using the focaldistance estimating techniques described herein.

Referring now to FIG. 2, in an alternative embodiment, the system 100for reading code symbols includes an object detection subsystem 130 fordetecting the presence of an object (e.g., an object bearing a codesymbol) within the system's 100 field of view. The object detectionsubsystem can project an IR-based light beam into the field of view anddetect a return signal from an object present in the field of view todetect the presence of that object. Upon detection of an object, thesystem 100 may initiate the attempted reading of a code symbol(s) withinthe field of view using the adaptive focusing techniques describedherein.

Whether by successfully relying on the initial, predicted focaldistance, or by falling back on a traditional autofocus routine, thesystem 100 ultimately obtains a successful scan of the code symbol. Whenthe code symbol is decoded, the system 100 will need to output theresulting data (e.g., the data decoded from the code symbol) to anothersystem (e.g., a data processing system). The data processing system maybe housed either within the same device that houses the system 100 forreading code symbols, or it may be housed in a separate device (e.g., ahost device). Referring now to FIG. 3, to output the system signals(e.g., data, bits, electrical signals) representing the data generatedby decoding the code symbol, the system 100 includes an input/outputsubsystem 140. The input/output subsystem 140 manages the sending ofsystem signals to other systems and/or devices.

The system 100 for reading code symbols according to the presentinvention may take a variety of forms. For instance, the system 100 maybe a stationary unit at a checkout register (e.g., point of sale (POS)),similar to a bioptic scanner found in most grocery stores. Moretypically, the system 100 for reading code symbols according to thepresent invention will take the form of a hand-held device such as asmartphone, a tablet computer, or a hand-held scanner. For hand-helddevices, the system 100 according to the present invention includes ahand-supportable housing in which the imaging subsystem 110 and theimage processor 120 are disposed.

In another aspect, the present disclosure embraces a system 100 forreading code symbols that includes an imaging subsystem 110 and an imageprocessor 120. The image processor 120 selects an initial, predictedfocal distance for the imaging subsystem's 110 focusing module withrespect to a code symbol. The image processor 120 processes one or moreimages of the code symbol captured by the imaging subsystem 110 at theinitial, predicted focal distance. If, after processing a predeterminednumber of captured images of the code symbol, the image processor 120fails to decode the code symbol, then the image processor 120 performsan autofocus routine. On the other hand, if the image processor 120 isable to decode a code symbol from a captured image, then the imageprocessor 120 stores in memory the focal distance associated with thedecoded code symbol. The image processor 120 selects the initial,predicted focal distance as a function of a plurality of memorized focaldistances associated with previously decoded code symbols.

To supplement the present disclosure, this application incorporatesentirely by reference the following patents, patent applicationpublications, and patent applications: U.S. Pat. No. 6,832,725; U.S.Pat. No. 7,159,783; U.S. Pat. No. 7,413,127; U.S. Pat. No. 7,726,575;U.S. Pat. No. 8,390,909; U.S. Pat. No. 8,294,969; U.S. Pat. No.8,408,469; U.S. Pat. No. 8,408,468; U.S. Pat. No. 8,381,979; U.S. Pat.No. 8,408,464; U.S. Pat. No. 8,317,105; U.S. Pat. No. 8,366,005; U.S.Pat. No. 8,424,768; U.S. Pat. No. 8,322,622; U.S. Pat. No. 8,371,507;U.S. Pat. No. 8,376,233; U.S. Pat. No. 8,457,013; U.S. Pat. No.8,448,863; U.S. Pat. No. 8,459,557; U.S. Pat. No. 8,469,272; U.S. PatentApplication Publication No. 2012/0111946; U.S. Patent ApplicationPublication No. 2012/0223141; U.S. Patent Application Publication No.2012/0193423; U.S. Patent Application Publication No. 2012/0203647; U.S.Patent Application Publication No. 2012/0248188; U.S. Patent ApplicationPublication No. 2012/0228382; U.S. Patent Application Publication No.2012/0193407; U.S. Patent Application Publication No. 2012/0168511; U.S.Patent Application Publication No. 2012/0168512; U.S. Patent ApplicationPublication No. 2010/0177749; U.S. Patent Application Publication No.2010/0177080; U.S. Patent Application Publication No. 2010/0177707; U.S.Patent Application Publication No. 2010/0177076; U.S. Patent ApplicationPublication No. 2009/0134221; U.S. Patent Application Publication No.2012/0318869; U.S. Patent Application Publication No. 2013/0043312; U.S.Patent Application Publication No. 2013/0068840; U.S. Patent ApplicationPublication No. 2013/0070322; U.S. Patent Application Publication No.2013/0075168; U.S. Patent Application Publication No. 2013/0056285; U.S.Patent Application Publication No. 2013/0075464; U.S. Patent ApplicationPublication No. 2013/0082104; U.S. Patent Application Publication No.2010/0225757; U.S. patent application Ser. No. 13/347,219 for anOMNIDIRECTIONAL LASER SCANNING BAR CODE SYMBOL READER GENERATING A LASERSCANNING PATTERN WITH A HIGHLY NON-UNIFORM SCAN DENSITY WITH RESPECT TOLINE ORIENTATION, filed Jan. 10, 2012 (Good); U.S. patent applicationSer. No. 13/347,193 for a HYBRID-TYPE BIOPTICAL LASER SCANNING ANDDIGITAL IMAGING SYSTEM EMPLOYING DIGITAL IMAGER WITH FIELD OF VIEWOVERLAPPING FIELD OF FIELD OF LASER SCANNING SUBSYSTEM, filed Jan. 10,2012 (Kearney et al.); U.S. patent application Ser. No. 13/367,047 forLASER SCANNING MODULES EMBODYING SILICONE SCAN ELEMENT WITH TORSIONALHINGES, filed Feb. 6, 2012 (Feng et al.); U.S. patent application Ser.No. 13/400,748 for a LASER SCANNING BAR CODE SYMBOL READING SYSTEMHAVING INTELLIGENT SCAN SWEEP ANGLE ADJUSTMENT CAPABILITIES OVER THEWORKING RANGE OF THE SYSTEM FOR OPTIMIZED BAR CODE SYMBOL READINGPERFORMANCE, filed Feb. 21, 2012 (Wilz); U.S. patent application Ser.No. 13/432,197 for a LASER SCANNING SYSTEM USING LASER BEAM SOURCES FORPRODUCING LONG AND SHORT WAVELENGTHS IN COMBINATION WITH BEAM-WAISTEXTENDING OPTICS TO EXTEND THE DEPTH OF FIELD THEREOF WHILE RESOLVINGHIGH RESOLUTION BAR CODE SYMBOLS HAVING MINIMUM CODE ELEMENT WIDTHS,filed Mar. 28, 2012 (Havens et al.); U.S. patent application Ser. No.13/492,883 for a LASER SCANNING MODULE WITH ROTATABLY ADJUSTABLE LASERSCANNING ASSEMBLY, filed Jun. 10, 2012 (Hennick et al.); U.S. patentapplication Ser. No. 13/367,978 for a LASER SCANNING MODULE EMPLOYING ANELASTOMERIC U-HINGE BASED LASER SCANNING ASSEMBLY, filed Feb. 7, 2012(Feng et al.); U.S. patent application Ser. No. 13/852,097 for a Systemand Method for Capturing and Preserving Vehicle Event Data, filed Mar.28, 2013 (Barker et al.); U.S. patent application Ser. No. 13/780,356for a Mobile Device Having Object-Identification Interface, filed Feb.28, 2013 (Samek et al.); U.S. patent application Ser. No. 13/780,158 fora Distraction Avoidance System, filed Feb. 28, 2013 (Sauerwein); U.S.patent application Ser. No. 13/784,933 for an Integrated Dimensioningand Weighing System, filed Mar. 5, 2013 (McCloskey et al.); U.S. patentapplication Ser. No. 13/785,177 for a Dimensioning System, filed Mar. 5,2013 (McCloskey et al.); U.S. patent application Ser. No. 13/780,196 forAndroid Bound Service Camera Initialization, filed Feb. 28, 2013(Todeschini et al.); U.S. patent application Ser. No. 13/792,322 for aReplaceable Connector, filed Mar. 11, 2013 (Skvoretz); U.S. patentapplication Ser. No. 13/780,271 for a Vehicle Computer System withTransparent Display, filed Feb. 28, 2013 (Fitch et al.); U.S. patentapplication Ser. No. 13/736,139 for an Electronic Device Enclosure,filed Jan. 8, 2013 (Chaney); U.S. patent application Ser. No. 13/771,508for an Optical Redirection Adapter, filed Feb. 20, 2013 (Anderson); U.S.patent application Ser. No. 13/750,304 for Measuring Object DimensionsUsing Mobile Computer, filed Jan. 25, 2013; U.S. patent application Ser.No. 13/471,973 for Terminals and Methods for Dimensioning Objects, filedMay 15, 2012; U.S. patent application Ser. No. 13/895,846 for a Methodof Programming a Symbol Reading System, filed Apr. 10, 2013 (Corcoran);U.S. patent application Ser. No. 13/867,386 for a Point of Sale (POS)Based Checkout System Supporting a Customer-Transparent Two-FactorAuthentication Process During Product Checkout Operations, filed Apr.22, 2013 (Cunningham et al.); U.S. patent application Ser. No.13/888,884 for an Indicia Reading System Employing Digital Gain Control,filed May 7, 2013 (Xian et al.); U.S. patent application Ser. No.13/895,616 for a Laser Scanning Code Symbol Reading System EmployingMulti-Channel Scan Data Signal Processing with Synchronized Digital GainControl (SDGC) for Full Range Scanning, filed May 16, 2013 (Xian etal.); U.S. patent application Ser. No. 13/897,512 for a Laser ScanningCode Symbol Reading System Providing Improved Control over the Lengthand Intensity Characteristics of a Laser Scan Line Projected TherefromUsing Laser Source Blanking Control, filed May 20, 2013 (Brady et al.);U.S. patent application Ser. No. 13/897,634 for a Laser Scanning CodeSymbol Reading System Employing Programmable Decode Time-WindowFiltering, filed May 20, 2013 (Wilz, Sr. et al.); U.S. patentapplication Ser. No. 13/902,242 for a System For Providing A ContinuousCommunication Link With A Symbol Reading Device, filed May 24, 2013(Smith et al.); U.S. patent application Ser. No. 13/902,144, for aSystem and Method for Display of Information Using a Vehicle-MountComputer, filed May 24, 2013 (Chamberlin); U.S. patent application Ser.No. 13/902,110 for a System and Method for Display of Information Usinga Vehicle-Mount Computer, filed May 24, 2013 (Hollifield); U.S. patentapplication Ser. No. 13/912,262 for a Method of Error Correction for 3DImaging Device, filed Jun. 7, 2013 (Jovanovski et al.) and U.S. patentapplication Ser. No. 13/912,702 for a System and Method for Reading CodeSymbols at Long Range Using Source Power Control, filed Jun. 7, 2013(Xian et al.).

In the specification and/or figures, typical embodiments of theinvention have been disclosed. The present invention is not limited tosuch exemplary embodiments. The use of the term “and/or” includes anyand all combinations of one or more of the associated listed items. Thefigures are schematic representations and so are not necessarily drawnto scale. Unless otherwise noted, specific terms have been used in ageneric and descriptive sense and not for purposes of limitation.

1. A system for reading code symbols, comprising: an imaging subsystemfor capturing images within the imaging subsystem's field of view, theimaging subsystem including a focusing module; and an image processorconfigured for: selecting an initial, predicted focal distance for theimaging subsystem's focusing module; processing an image of a codesymbol captured by the imaging subsystem in order to decode the codesymbol; and storing in memory the focal distance associated with thedecoded code symbol; calculating a weighted moving average of the storedfocal distances; and selecting the initial, predicted focal distancebased on the calculated, weighted moving average of the stored focaldistances.
 2. The system for reading code symbols according to claim 1,wherein the image processor is configured to perform an autofocusroutine if processing the captured image of the code symbol at theinitial, predicted focal distance fails to decode the code symbol. 3.The system for reading code symbols according to claim 1, wherein theimage processor is configured to perform an autofocus routine if thenumber of memorized focal distances associated with previously decodedcode symbols is less than a predetermined minimum.
 4. The system forreading code symbols according to claim 1, wherein the imaging subsystemdetects the presence of a code symbol within the imaging subsystem'sfield of view.
 5. The system for reading code symbols according to claim1, comprising an object detection subsystem for detecting the presenceof an object within the imaging subsystem's field of view.
 6. The systemfor reading code symbols according to claim 1, comprising ahand-supportable housing, wherein the imaging subsystem and imageprocessor are disposed within the hand-supportable housing.
 7. Thesystem for reading code symbols according to claim 1, comprising aninput/output subsystem for outputting system signals.
 8. A system forreading code symbols, comprising: an imaging subsystem for capturingimages, the imaging subsystem comprising a focusing module; and an imageprocessor configured for: selecting an initial, predicted focal distancefor the imaging subsystem's focusing module; processing an image of acode symbol captured by the imaging subsystem in order to decode thecode symbol; and storing in memory the focal distance associated withthe decoded code symbol; wherein the image processor is configured toselect the initial, predicted focal distance as a function of memorizedfocal distances associated with previously decoded code symbols; andwherein the image processor is configured to perform an autofocusroutine if the number of memorized focal distances associated withpreviously decoded code symbols is less than a predetermined minimum. 9.The system for reading code symbols according to claim 8, wherein theimage processor is configured to perform an autofocus routine ifprocessing the captured image of the code symbol at the initial,predicted focal distance fails to decode the code symbol.
 10. The systemfor reading code symbols according to claim 8, wherein the imagingsubsystem detects the presence of a code symbol within the imagingsubsystem's field of view.
 11. The system for reading code symbolsaccording to claim 8, comprising an object detection subsystem fordetecting the presence of an object within the imaging subsystem's fieldof view.
 12. The system for reading code symbols according to claim 8,comprising a hand-supportable housing, wherein the imaging subsystem andimage processor are disposed within the hand-supportable housing. 13.The system for reading code symbols according to claim 8, comprising aninput/output subsystem for outputting system signals.
 14. A system forreading code symbols, comprising: an imaging subsystem for capturingimages within the imaging subsystem's field of view, the imagingsubsystem including a focusing module; and an image processor configuredfor: selecting an initial, predicted focal distance for the imagingsubsystem's focusing module with respect to a code symbol; processingone or more images of a code symbol captured by the imaging subsystem atthe initial, predicted focal distance; if processing a predeterminednumber of captured images of a code symbol fails to decode the codesymbol, then performing an autofocus routine; and if processing acaptured image of the code symbol decodes the code symbol, then storingin memory the focal distance associated with the decoded code symbol;calculating a weighted moving average of the focal distances associatedwith decoded code symbols stored in memory; selecting the initial,predicted focal distance based on the calculated, weighted movingaverage of the stored focal distances.
 15. The system for reading codesymbols according to claim 14, wherein the image processor is configuredto store in memory the initial, predicted focal distance associated withthe decoded code symbol if processing a captured image of a code symbolat the initial, predicted focal distance decodes the code symbol. 16.The system for reading code symbols according to claim 14, wherein theimage processor is configured to perform an autofocus routine if thenumber of memorized focal distances associated with previously decodedcode symbols is less than a predetermined minimum.
 17. The system forreading code symbols according to claim 14, wherein, the image processoris configured to process one or more additional captured images of thecode symbol after the image processor performs an autofocus routine. 18.The system for reading code symbols according to claim 14, wherein theimaging subsystem detects the presence of a code symbol within theimaging subsystem's field of view.
 19. The system for reading codesymbols according to claim 14, comprising an object detection subsystemfor detecting the presence of a code symbol within the imagingsubsystem's field of view.
 20. The system for reading code symbolsaccording to claim 14, comprising a hand-supportable housing, whereinthe imaging subsystem and image processor are disposed within thehand-supportable housing.